package com.infore.dataReceiving.service;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.infore.dataReceiving.dto.WaterInstructionsDataDto;
import com.infore.dataReceiving.entity.CheckData;
import com.infore.dataReceiving.entity.HourData;
import com.infore.dataReceiving.entity.RealTimeData;
import com.infore.dataReceiving.entity.RecoveryData;
import com.infore.dataReceiving.entity.SpanCheckData;
import com.infore.dataReceiving.entity.ZeroCheckData;
import com.infore.dataReceiving.select.util.PageObject;
import com.infore.dataReceiving.util.ResultEntity;

public interface IInstructionsService {
	
	
	public List<RealTimeData> queryRealTimeData(Timestamp beginTime,Timestamp endTime);
	
	public List<HourData> queryHourData(Timestamp beginTime,Timestamp endTime);
	
	public List<Map<String, Object>> queryRowToColHourData(String mn,String beginTime,String endTime,String pageNum,String pageSize);
	
	public Integer queryRowToColHourDataCount(String mn,String beginTime,String endTime);
	
	public List<Map<String, Object>> queryRowToColRealTimeData(String mn,String pageNum,String pageSize);
	
	public Integer queryRowToColRealTimeDataCount(String mn);
	
	public List<Map<String, Object>> queryRowToColRealTimeData1(String mn,String beginTime,String endTime,String pageNum,String pageSize);
	
	public Integer queryRowToColRealTimeDataCount1(String mn,String beginTime,String endTime);
	
	public List<CheckData> queryCheckData();
	
	public List<RealTimeData> queryNoFlagRealData();
	
	public List<RecoveryData> queryRecoveryData();
	
	public List<ZeroCheckData> queryZeroCheckData(String factorCode);
	
	public List<SpanCheckData> querySpanCheckData(String factorCode);
	
	public void updateZeroCheckData(List<String> list);
	
	public void updateSpanCheckData(List<String> list);
	
	public void updateRealData(List<String> list);
	
	public void updateRecoveryData(List<String> list);
	
	public void updateCheckData(List<String> list);
	
	ResultEntity queryLogStatusData(String mn, Timestamp beginTime, Timestamp endTime, String logType, PageObject pageObject);
	
	/** 获取设备监测因子的关键参数 **/
    public ResultEntity queryEquipmentParam(String mn, String factorCode);
    
    /** 获取设备流程日志 **/
    public ResultEntity queryEquipFlowLogData(String mn, Timestamp t1, Timestamp t2, String factorCode);
    
    /** 获取监测站因子的小时数据 **/
    public ResultEntity queryHourDataByMnFactor(String mn, Timestamp t1, Timestamp t2, String factorCode);
    
    /** 获取设备日志或状态 状态需解析**/
    ResultEntity queryEquipmentInfo(String mn, String factorCode, String code);

    ResultEntity queryEquipmentInfos(String mn, List<String> factorCodes, List<String> codes);
    
    /**区域水质污染趋势分析**/
    ResultEntity areaProjectTrendChart();

    List<Map<String, Object>> queryRowToColRealTimeData(Date startTime, Date endTime, String mn, String pageNum,
            String pageSize);

    ResultEntity queryEquipmentInfosByh(String mn, List<WaterInstructionsDataDto> finalList);

    /**
     * 获取站点仪器参数
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param mn
     * @return
     * @date 2019年11月26日下午2:27:18
     */
    ResultEntity queryEquipmentInfo(String mn);

    /**
     * 查询多站点的联网统计率
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param mns 多站点
     * @param type 1在线 0离线   all全部
     * @param t1
     * @param t2
     * @return
     * @date 2019年12月11日上午9:28:13
     */
    ResultEntity queryMnsNetworkStatisLv(String mns, String type,Timestamp t1, Timestamp t2);

    /**
     * 统计站点时间范围内每日的在线
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param mn
     * @param type
     * @param t1
     * @param t2
     * @return
     * @date 2019年12月11日下午2:14:51
     */
    ResultEntity queryMnNetworkStatisLv(String mn,  Timestamp t1, Timestamp t2);

    /**
     * 查询站点在线掉线 图标 line
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param stationMn
     * @param t1
     * @param t2
     * @return
     * @date 2019年12月11日下午2:44:58
     */
    ResultEntity queryMnNetworkEcharts(String stationMn, Timestamp t1, Timestamp t2);

    /**
     * 获取站点实时监控状态
     * 
     * @author 蔡永顺
     * @return ResultEntity
     * @param mn
     * @return
     * @throws IOException
     * @date 2019年12月11日下午5:34:49
     */
    ResultEntity queryStationRealMoin(String mn) throws IOException;

}
